package com.fpj.sat.vehicle_administrator.service.impl;

import java.sql.Date;
import java.util.List;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.fpj.sat.vehicle_administrator.dao.VehiculoDao;
import com.fpj.sat.vehicle_administrator.domain.Correo;
import com.fpj.sat.vehicle_administrator.domain.RegistroVehiculo;
import com.fpj.sat.vehicle_administrator.domain.Vehiculo;
import com.fpj.sat.vehicle_administrator.service.VehiculoService;

@Service
public class VehiculoServiceImpl implements VehiculoService{

	private static final Logger logger = Logger.getLogger(VehiculoServiceImpl.class);
	private static final boolean isDebugEnabled = logger.isDebugEnabled();
	
	@Autowired
	private VehiculoDao vehicleDao;
	
	public Object[][] listarRegistros(Date fechaInicio, Date fechaFin, int numColumnas, int idUsuario) {
		logger.info("Inicia listarRegistros.");
		
		if(isDebugEnabled){
			logger.debug("fechaInicio: " + fechaInicio);
			logger.debug("fechaFin: " + fechaFin);
		}
		List<RegistroVehiculo> lista = vehicleDao.listarRegistros(fechaInicio, fechaFin, idUsuario);
		Object[][] array = new Object[lista.size()][numColumnas+1];
		int i = 0;
		for(RegistroVehiculo reg: lista){
			array[i][0] = reg.getId();
			array[i][1] = reg.getTitulo();
			array[i][2] = reg.getFechaRegistro();
			array[i][3] = reg.getUsuarioBean().getNombres();
			array[i][4] = reg.getUsuarioBean();
			i++;
		}
		return array;
	}

	public void grabarRegistro(RegistroVehiculo registroVehiculo) {
		vehicleDao.grabarRegistro(registroVehiculo);
		
	}

	public void actualizarRegistro(RegistroVehiculo registroVehiculo) {
		vehicleDao.actualizarRegistro(registroVehiculo);
		
	}

	public Object[][] listarVehiculos(int idRegistro, int numColumnas) {
		List<Vehiculo> lista = vehicleDao.listarVehiculos(idRegistro);
		Object[][] array = new Object[lista.size()][numColumnas+1];
		int i = 0;
		for(Vehiculo veh: lista){
			array[i][0] = veh.getId();
			array[i][1] = veh.getPlaca();
			array[i][2] = veh.getMotor();
			array[i][3] = veh.getFechaVehiculo();
			array[i][4] = veh.getRegistroVehiculo().getId();
			array[i][5] = veh.getRegistroVehiculo();
			i++;
		}
		return array;
	}

	public void grabarVehiculo(Vehiculo vehiculo) {
		vehicleDao.grabarVehiculo(vehiculo);
	}

	public void actualizarVehiculo(Vehiculo vehiculo) {
		vehicleDao.actualizarVehiculo(vehiculo);
	}

	public void registrarCorreo(Correo correo) {
		vehicleDao.registrarCorreo(correo);
	}

	public List<Correo> getCorreos(String tipo) {
		return vehicleDao.getCorreos(tipo);
	}



}
